using System.Runtime.InteropServices;
namespace ScreenToGif.Native;

public static class Constants
{
	/// <summary>
	/// User32 library name.
	/// </summary>
	internal const string User32 = "user32.dll";
	internal const string Gdi32 = "gdi32.dll";
	internal const string Shell32 = "shell32.dll";
	internal const string DwmApi = "dwmapi.dll";
	internal const string MsvCrt = "msvcrt.dll";
	internal const string NtDll = "ntdll.dll";
	internal const string WinMm = "winmm.dll";
	internal const string Kernel32 = "kernel32.dll";

	internal static HandleRef NullHandleRef = new(null, IntPtr.Zero);

	internal const int MonitorDefaultToNull = 0;
	internal const int MonitorDefaultToPrimary = 1;
	internal const int MonitorDefaultToNearest = 2;

	public const int CursorShowing = 0x00000001;
	internal const int DstInvert = 0x00550009;

	internal const int DiNormal = 0x0003;

	internal const int MonitorinfoPrimary = 0x00000001;

	internal const int StateSystemFocusable = 0x00100000;
	internal const int StateSystemUnavailable = 0x0001;
	internal const int StateSystemInvisible = 0x8000;
	internal const int StateSystemOffscreen = 0x010000;

	internal const int CChildrenTitlebar = 5;

	internal const int KEYEVENTF_KEYUP = 0x2;
	internal const int MOUSEEVENT_LEFTDOWN = 0x2;
	internal const int MOUSEEVENT_LETFUP = 0x4;
	internal const int MOUSEEVENTF_RIGHTDOWN = 0x8;
	internal const int MOUSEEVENTF_RIGHTUP = 0x10;
	internal const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
	internal const int MOUSEEVENTF_MIDDLEUP = 0x40;
	internal const int MOUSEEVENTF_WHEEL = 0x0800;
}
